package EP::Visualization::Graphics;

use EP::Visualization::Hooks;
use Data::UUID;

use strict;

sub new {
  my $proto = shift;
  my $class = ref($proto) || $proto;
  my $self = {};
  bless $self, $class;

  my $ug = new Data::UUID;
  $self->{uuid} = $ug->create_str();

  $self->setData ( @_ ) if @_;


  return $self;
}

sub get_uuid {
  my $self = shift;
  return $self->{uuid};
}

###########################################
#Set the data, depending on the dataformat#
#this method can be overloaded            #
###########################################

sub setData {
  my $self = shift;
  $self->{data} = @_;
  return;
}

##########################################
#returns the data                            #
##########################################

sub getData{
  my $self=shift;
  return $self->{data};
}
############################################
#Set the orientation of the graphics object#
############################################

sub setOrientation{
  my $self=shift;
  my $orientation=shift;
  $self->{orientation} = $orientation;
  return;
}

############################################
#Get the orientation of the graphics object#
############################################

sub getOrientation{
  my $self=shift;
  my $orientation;
  if(exists $self->{orientation}){
    $orientation = $self->{orientation};
  }
  else{
    $orientation=0;
  }
  return $orientation;
}

###################################################
#Order the data: here this method is present      #
#such that every Graphic class has this function #
#even when it can't be ordered                    #
###################################################

sub order {
  return;
}

sub vtbr_buttons { return undef; };
sub htbr_buttons { return undef; };
sub tbr_buttons { return undef; };

1;
